/**
 * 
 */


function cargarIndicadores(categoria,ciudad,metodologia,visibilidad_indicador){
	var data="id_categoria="+categoria;
	if(ciudad)
		data+="&id_ciudad="+ciudad;
	if(metodologia)
		data+="&metodologia_indicador="+metodologia;
		
	$.ajax({
		  type: "POST",
		  dataType:"JSON",
		  url: "index.php?option=com_charts&task=getIndicador&format=raw",
		  data: data,
		  success: function(info){
			 
			$(".indicador").html("");
			if(visibilidad_indicador=='lista'){
				var contenido="<select name=\"id_indicador\" id=\"id_indicador\" class=\"id_indicador\">"+
				"<option value=\"NULL\">- Seleccione uno -</option>";

				$.each(info, function(key, val) {
					contenido+="<option value=\""+val['id_indicador']+"\">"+val['nombre_grafico_indicador']+"</option>";
				});
				  
				contenido+="</select>";				
			}
			else if (visibilidad_indicador=='checks'){
				$.each(info, function(key, val) {
					contenido+="<input class=\"id_indicador\" name=\"id_indicador\" type=\"radio\" value=\""+val['id_indicador']+"\">"+val['nombre_grafico_indicador'];
				});
			}
			
			
			$(".indicador").append(contenido);
									
		  }/*FIN SUCCESS SUB CIUDAD INDICADOR*/
	});/*FIN AJAX SUB CIUDAD INDICADOR*/			
} 
function cargarMetodologias(categoria,ciudad,visibilidad_metodologia,
		  visibilidad_indicador){
	
	var data="id_categoria="+categoria;
	if(ciudad)
		data+="&id_ciudad="+ciudad;
		
	$.ajax({
		  type: "POST",
		  dataType:"JSON",
		  url: "index.php?option=com_charts&task=getMetodologiasIndicador&format=raw",
		  data: data,
		  success: function(info){
			 
			$(".metodologia_indicador").html("");
			
			
		if (visibilidad_metodologia=='lista'){	
			var contenido="<select name=\"metodologia_indicador\" id=\"metodologia_indicador\" class=\"metodologia_indicador\">"+
							"<option  value=\"NULL\">- Seleccione uno -</option>";
			
			$.each(info, function(key, val) {
				contenido+="<option value=\""+val['metodologia_indicador']+"\">"+val['metodologia_indicador']+"</option>";
			});
			  
			contenido+="</select>";
			
		}
		else if (visibilidad_metodologia=='checks'){
				$.each(info, function(key, val) {
					contenido+="<input class=\"metodologia_indicador\" name=\"metodologia_indicador\" type=\"radio\" value=\""+val['metodologia_indicador']+"\">"+val['metodologia_indicador'];
				});
		}
			
			$(".metodologia_indicador").append(contenido);
			
			$(".metodologia_indicador").change(function(){
				cargarIndicadores(categoria,ciudad,$(this).val(),visibilidad_indicador);
			});
			
		  }/*FIN SUCCESS CATEGORIA INDICADOR*/
	});/*FIN AJAX CATEGORIA INDICADOR*/	
}

function cargarSubCiudades(categoria,nombre_ciudad,visibilidad_sub_ciudad,
		  visibilidad_metodologia,
		  visibilidad_indicador){
	var data="id_categoria="+categoria;
	if(nombre_ciudad)
		data+="&nombre_ciudad="+nombre_ciudad
		
	$.ajax({
		  type: "POST",
		  dataType:"JSON",
		  url: "index.php?option=com_charts&task=getSubCiudadesIndicador&format=raw",
		  data: data,
		  success: function(info){
			$(".sub_ciudad_indicador").html("");
			
			if (visibilidad_sub_ciudad=='lista'){			
				var contenido="<select name=\"id_sub_ciudad\" id=\"id_sub_ciudad\" class=\"id_sub_ciudad\" categoria=\""+categoria+"\">"+
								"<option  value=\"NULL\">- Seleccione uno -</option>";
				
				$.each(info, function(key, val) {
					contenido+="<option  value=\""+val['id_ciudad']+"\">"+val['nombre_ciudad']+"</option>";
				});
				  
				contenido+="</select>";
			
			}
			else if (visibilidad_sub_ciudad=='checks'){
				$.each(info, function(key, val) {
					contenido+="<input class=\"id_sub_ciudad\" name=\"id_sub_ciudad\" type=\"radio\" value=\""+val['id_ciudad']+"\">"+val['nombre_ciudad'];
				});
			}
			
			$(".sub_ciudad_indicador").append(contenido);
			$(".id_sub_ciudad").change(function(){
				
				getGraphData(categoria,$(this).val())
				cargarMetodologias(categoria,$(this).val(),visibilidad_metodologia,
						  visibilidad_indicador);
				cargarIndicadores(categoria,$(this).val(),visibilidad_indicador);
			});/*FIN CHANGE SUB CIUDAD INDICADOR*/
		  }/*FIN SUCCESS CIUDAD INDICADOR*/
	});/*FIN AJAX CIUDAD INDICADOR*/		
		
}

function getGraphData(categoria,id_sub_ciudad){

	var data="id_categoria="+categoria+"&id_sub_ciudad="+id_sub_ciudad;
	$.ajax({
		  type: "POST",
		  dataType:"JSON",
		  url: "index.php?option=com_charts&task=getGraphData&format=raw",
		  data: data,
		  success: function(info){

			var options={
					chart: {
						renderTo: 'container',
						defaultSeriesType: 'column'
					},
					title: {
						text: ''
					},
					subtitle: {
						text: ''
					},
					xAxis: {
						categories: [
							'2008', 
							'2009', 
							'2010'
						]
					},
					yAxis: {
						min: 0,
						title: {
							text: 'Rainfall (mm)'
						}
					},
					legend: {
						layout: 'vertical',
						backgroundColor: '#FFFFFF',
						align: 'left',
						verticalAlign: 'top',
						x: 100,
						y: 70,
						floating: true,
						shadow: true
					},
					tooltip: {
						formatter: function() {
							return ''+
								this.x +': '+ this.y +' mm';
						}
					},
					plotOptions: {
						column: {
							pointPadding: 0.2,
							borderWidth: 0
						}
					},
				    series: []
				};
			
		
            $.each(info, function(itemNo, item) {
                var series = {
                		data: []
                };            	
                series.name = item['name'];
                var dataArray = item['data'].split(',');
                $.each(dataArray, function(dataNo, data) {
                	series.data.push(parseFloat(data));
                });
                options.series.push(series);
            });
                
             
			
			
			  chart = new Highcharts.Chart(options);
						  
		  }/*FIN SUCCESS CATEGORIA INDICADOR*/
	});/*FIN AJAX CATEGORIA INDICADOR*/	
}
function cargarCiudades(categoria,visibilidad_ciudad,
								  visibilidad_sub_ciudad,
								  visibilidad_metodologia,
								  visibilidad_indicador){
	var data="id_categoria="+categoria;
	$.ajax({
		  type: "POST",
		  dataType:"JSON",
		  url: "index.php?option=com_charts&task=getCiudadesIndicador&format=raw",
		  data: data,
		  success: function(info){
			 
			$(".ciudad_indicador").html("");
	if (visibilidad_ciudad=='lista'){
			var contenido="<select name=\"id_ciudad\" id=\"id_ciudad\" class=\"id_ciudad\" categoria=\""+categoria+"\">"+
							"<option  value=\"NULL\">- Seleccione uno -</option>";
			
			$.each(info, function(key, val) {
				contenido+="<option value=\""+val['id_ciudad']+"\">"+val['nombre_ciudad']+"</option>";
			});
			  
			contenido+="</select>";
			
	}
	else if (visibilidad_ciudad=='checks'){
		$.each(info, function(key, val) {
			contenido+="<input class=\"id_ciudad\" name=\"id_ciudad\" type=\"radio\" value=\""+val['id_ciudad']+"\">"+val['nombre_ciudad'];
		});
	}
			
			$(".ciudad_indicador").append(contenido);
			
			$(".id_ciudad").change(function(){
				cargarSubCiudades(categoria,$(this).children("option:selected").html(),visibilidad_sub_ciudad,
																					  visibilidad_metodologia,
																					  visibilidad_indicador);
				cargarMetodologias(categoria,$(this).val(),
						  visibilidad_metodologia,
						  visibilidad_indicador);
				cargarIndicadores(categoria,$(this).val(),null,
						  visibilidad_indicador);
			});/*FIN CHANGE CIUDAD INDICADOR*/
										
		  }/*FIN SUCCESS CATEGORIA INDICADOR*/
	});/*FIN AJAX CATEGORIA INDICADOR*/	
}	


function cargarCategorias(id_tipo_indicador,
						  visibilidad_categoria_indicador,
						  visibilidad_ciudad,
						  visibilidad_sub_ciudad,
						  visibilidad_metodologia,
						  visibilidad_indicador){
	
	var data="id_tipo_indicador="+id_tipo_indicador;
	$.ajax({
		  type: "POST",
		  dataType:"JSON",
		  url: "index.php?option=com_charts&task=getCategoriasIndicador&format=raw",
		  data: data,
		  success: function(info){
			 
			$(".categoria_indicador").html("");
		if (visibilidad_categoria_indicador=='lista'){	
			var contenido="<select name=\"id_categoria_indicador\" id=\"id_categoria_indicador\" class=\"id_categoria_indicador\">"+
							"<option  value=\"NULL\">- Seleccione uno -</option>";
			
			$.each(info, function(key, val) {
				contenido+="<option value=\""+val['id_categoria']+"\">"+val['nombre']+"</option>";
			});
			  
			contenido+="</select>";

		}
		else if (visibilidad_categoria_indicador=='checks'){
			$.each(info, function(key, val) {
				contenido+="<input class=\"id_categoria_indicador\" name=\"id_categoria_indicador\" type=\"radio\" value=\""+val['id_categoria']+"\">"+val['nombre'];
			});
		}			
			
			$(".categoria_indicador").append(contenido);
			
			$(".id_categoria_indicador").change(function(){
				cargarCiudades($(this).val(), visibilidad_ciudad,
											  visibilidad_sub_ciudad,
											  visibilidad_metodologia,
											  visibilidad_indicador);
/*				cargarSubCiudades($(this).val(),null,visibilidad_sub_ciudad,
												  visibilidad_metodologia,
												  visibilidad_indicador);
				cargarMetodologias($(this).val(),null,visibilidad_metodologia,
						  							visibilidad_indicador);
				cargarIndicadores($(this).val(), null,null,	visibilidad_indicador);*/
			});	/*FIN CHANGE CATEGORIA INDICADOR*/
		  }/*FIN SUCCESS TIPO INDICADOR*/
	});	
}

function loadChartData(id){
	var data="id="+id;
	$.ajax({
		  type: "POST",
		  dataType:"JSON",
		  url: "index.php?option=com_charts&task=getChartData&format=raw",
		  data: data,
		  success: function(info){
			  cargarCategorias(info[0]['id_tipo_indicador'],
				  info[0]['visibilidad_categoria_indicador'],
				  info[0]['visibilidad_ciudad'],
				  info[0]['visibilidad_sub_ciudad'],
				  info[0]['visibilidad_metodologia'],
				  info[0]['visibilidad_indicador']
			  );
		  }/*FIN SUCCESS TIPO INDICADOR*/
	});	
}

$(document).ready(function(){
	$("#id_tipo_indicador").change(function(){
		cargarCategorias($(this).val());
	});
	var id=$("#id_grafico").val();
	loadChartData(id);
	
});